<!DOCTYPE HTML>
<html>
<head>
<title>FileMoveDir | AutoHotkey</title>
<meta name="description" content="The FileMoveDir command moves a folder along with all its sub-folders and files. It can also rename a folder." />
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
</head>
<body>

<h1>FileMoveDir</h1>

<p>移动文件夹及其所有子文件夹和文件. 它还可以重命名文件夹.</p>

<pre class="Syntax"><span class="func">FileMoveDir</span>, Source, Dest <span class="optional">, Flag</span></pre>
<h2>参数</h2>
<dl>

  <dt>Source</dt>
  <dd><p>源目录的名称(不含末尾的反斜杠), 如果未指定绝对路径则假定在 <a href="../Variables.htm#WorkingDir">%A_WorkingDir%</a> 中. 例如: C:\My Folder</p></dd>

  <dt>Dest</dt>
  <dd><p>目录的新路径和名称(不含末尾的反斜杠), 如果未指定绝对路径则假定在 <a href="../Variables.htm#WorkingDir">%A_WorkingDir%</a>. 例如: D:\My Folder.</p>
<p class="note"><strong>注意</strong>: <em>Dest</em> 是目录在移动后使用的实际路径和名称; 它 <em>不是</em> <em>Source</em> 移动后保存的目录(不过存在下面提到的已知限制).</p></dd>

  <dt>Flag</dt>
  <dd><p>(可选) 指定下列单个字符的其中一个:</p>
      <p><strong>0</strong>(默认): 不覆盖现有的文件. 如果存在 <em>Dest</em> 名称的文件或目录, 则操作会失败.</p>
      <p><strong>1</strong>: 覆盖现在的文件. 但是, 不会删除在 <em>Dest</em> 中没有被 <em>Source</em> 目录中文件覆盖的其他子目录或文件.<strong>已知限制:</strong> 如果在同一个卷上存在和 <em>Source</em> 相同的 <em>Dest</em> 文件夹, 则 <em>Source</em> 会被移入到这个文件夹中而不覆盖它. 要避免此问题, 请参阅下一个选项.</p>
      <p><strong>2</strong>: 与上面的模式 1 相同, 不过不存在那个限制.</p>      
      <p><strong>R</strong>: 重命名目录而不移动它. 尽管普通的重命名和移动具有相同的效果, 但如果您想要 "完全成功或完全失败" 的结果时它就会有用; 即您不希望由于 <em>Source</em> 或其中的某个文件被锁定(在使用中) 而只是部分移动成功. 尽管这种方法不能移动 <em>Source</em> 到另一个卷中, 但它可以移动到同一个卷中的其他任何目录. 如果已经存在 <em>Dest</em> 名称的文件或目录时, 则操作失败.</p></dd>

</dl>

<h2>ErrorLevel</h2>
<p><span class="ver">[v1.1.04+]</span>: 此命令失败时会抛出异常. 想了解更多信息, 请参阅<a href="Catch.htm#RuntimeErrors">运行时错误</a>.</p>
<p>如果遇到问题则 <a href="../misc/ErrorLevel.htm">ErrorLevel</a> 被置为 1, 否则为 0.</p>
<h2>备注</h2>
<p>FileMoveDir 移动单个文件夹到新位置. 要移动整个文件夹的内容(它的所有文件和子文件夹), 请参照 <a href="FileMove.htm">FileMove</a> 的示例部分.</p>
<p>如果源和目标在不同的卷或 UNC 路径中, 则会执行复制/删除操作而不进行移动.</p>
<h2>相关</h2>
<p><a href="FileCopyDir.htm">FileCopyDir</a>, <a href="FileCopy.htm">FileCopy</a>, <a href="FileMove.htm">FileMove</a>, <a href="FileDelete.htm">FileDelete</a>, <a href="LoopFile.htm">文件循环</a>, <a href="FileSelectFolder.htm">FileSelectFolder</a>, <a href="SplitPath.htm">SplitPath</a></p>
<h2>示例</h2>
<pre class="NoIndent">FileMoveDir, C:\My Folder, D:\My Folder  <em>; 移动到新驱动器.</em>
FileMoveDir, C:\My Folder, C:\My Folder (renamed), R  <em>; 简单地重命名.</em>
FileMoveDir, C:\My Folder, C:\New Location\My Folder, R  <em>; 只有在同一个卷上, 文件夹可以被"重命名到"另一个位置.</em></pre>

</body>
</html>